home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / gnu / glibc108.zip / glibc108 / grp / grp.h < prev    next >
C/C++ Source or Header  |  1992-11-06  |  3KB  |  102 lines

  1. /* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
  2. This file is part of the GNU C Library.
  3.  
  4. The GNU C Library is free software; you can redistribute it and/or
  5. modify it under the terms of the GNU Library General Public License as
  6. published by the Free Software Foundation; either version 2 of the
  7. License, or (at your option) any later version.
  8.  
  9. The GNU C Library is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12. Library General Public License for more details.
  13.  
  14. You should have received a copy of the GNU Library General Public
  15. License along with the GNU C Library; see the file COPYING.LIB.  If
  16. not, write to the, 1992 Free Software Foundation, Inc., 675 Mass Ave,
  17. Cambridge, MA 02139, USA.  */
  18.  
  19. /*
  20.  *    POSIX Standard: 9.2.1 Group Database Access    <grp.h>
  21.  */
  22.  
  23. #ifndef    _GRP_H
  24.  
  25. #define    _GRP_H    1
  26. #include <features.h>
  27.  
  28. __BEGIN_DECLS
  29.  
  30. #include <gnu/types.h>
  31.  
  32.  
  33. /* The group structure.     */
  34. struct group
  35.   {
  36.     char *gr_name;        /* Group name.    */
  37.     char *gr_passwd;        /* Password.    */
  38.     __gid_t gr_gid;        /* Group ID.    */
  39.     char **gr_mem;        /* Member list.    */
  40.   };
  41.  
  42.  
  43. #if defined(__USE_SVID) || defined(__USE_GNU)
  44. #define    __need_FILE
  45. #include <stdio.h>
  46. #endif
  47.  
  48. #ifdef    __USE_GNU
  49. /* Return a new stream open on the group file.  */
  50. extern FILE *__grpopen __P ((void));
  51.  
  52. /* Read a group entry from STREAM, filling in G.
  53.    Return the `struct group' of G if successful, NULL on failure.  */
  54. extern struct group *__grpread __P ((FILE * __stream, __ptr_t __g));
  55.  
  56. /* Return a chunk of memory containing pre-initialized data for __grpread.  */
  57. extern __ptr_t __grpalloc __P ((void));
  58. #endif
  59.  
  60.  
  61. #if defined(__USE_SVID) || defined(__USE_MISC) || defined (__USE_BSD)
  62. /* Rewind the group-file stream.  */
  63. extern void setgrent __P ((void));
  64.  
  65. /* Close the group-file stream.  */
  66. extern void endgrent __P ((void));
  67.  
  68. /* Read an entry from the group-file stream, opening it if necessary.  */
  69. extern struct group *getgrent __P ((void));
  70. #endif
  71.  
  72. #ifdef    __USE_SVID
  73. /* Read a group entry from STREAM.  */
  74. extern struct group *fgetgrent __P ((FILE * __stream));
  75. #endif
  76.  
  77. /* Search for an entry with a matching group ID.  */
  78. extern struct group *getgrgid __P ((__gid_t __gid));
  79.  
  80. /* Search for an entry with a matching group name.  */
  81. extern struct group *getgrnam __P ((__const char *__name));
  82.  
  83.  
  84. #ifdef    __USE_BSD
  85.  
  86. #define    __need_size_t
  87. #include <stddef.h>
  88.  
  89. /* Set the group set for the current user to GROUPS (N of them).  */
  90. extern int setgroups __P ((size_t __n, __const __gid_t * groups));
  91.  
  92. /* Initialize the group set for the current user
  93.    by reading the group database and using all groups
  94.    of which USER is a member.  Also include GROUP.  */
  95. extern int initgroups __P ((__const char *user, __gid_t group));
  96.  
  97. #endif /* Use BSD.  */
  98.  
  99. __END_DECLS
  100.  
  101. #endif /* grp.h  */
  102.